package com.nexgo.payment.ui.main;

import com.nexgo.payment.BasePresenter;
import com.nexgo.payment.BaseView;
import com.nexgo.payment.constrant.UploadType;

/**
 * 首页相关的操作接口
 *
 * @author 谭忠扬-YuriTam
 * @time 2017年9月5日
 */
public interface MainContract {
    interface View extends BaseView<Presenter> {
        /**
         * 提示未拔卡
         */
        void showCardExist();

        /**
         * 提示需要下载AID
         */
        void showNeedLoadAid();

        /**
         * 提示需要下载CAPK
         */
        void showNeedLoadCapk();

        /**
         * 提示离线上送
         *
         * @param uploadType 上送类型
         */
        void showUpload(UploadType uploadType);

        /**
         * 提示需要批上送
         */
        void showNeedBatchUpload();

        /**
         * 下载卡binB
         */
        void showNeedQpsBinB();

        /**
         * 下载卡binC
         */
        void showNeedQpsBinC();

        /**
         * 需要参数下载
         */
        void showNeedParamDown();

        /**
         * 需要上送状态
         */
        void showNeedUploadState();

        /**
         * 需要签到
         */
        void showNeedLogin();

        /**
         * 需要下载黑名单
         */
        void showNeedBlacklistDown();

        /**
         * 需要下载非接参数
         */
        void showNeedRfParamDown();

        /**
         * 需要打印最后一笔交易记录
         */
        void showNeedPrintLastTrans();

        /**
         * 需要打印结算单
         */
        void showNeedPrintLastSettle();
    }

    interface Presenter extends BasePresenter {
        /**
         * 设置主界面的所在自动联机动作结果，防止联机失败后，还一直重新发起联机
         * @param isSuccessful
         */
        void setUploadResult(boolean isSuccessful);
    }
}
